/*
 *  Domain.h
 *  T3nsors
 *
 *  Created by Michael Barriault on 09-10-07.
 *  Copyright 2010 University of Guelph. All rights reserved.
 *
 */

#ifndef DOMAIN_HEADER
#define DOMAIN_HEADER

#include <vector>

class Domain {
private:
	std::vector<int> O;
	std::vector<double> r;
	std::vector<double> D;
	std::vector<short> P;
public:
	int x;
	int N;
	Domain(void);
	Domain(int,...);
	~Domain(void);
	int operator[](int);
	int operator()(void);
	int operator()(int);
	double min(int);
	double max(int);
	double d(int);
	double d(void);
	short& p(int);
};

void CheckDims(Domain,Domain);
void CheckDims(int,int);

#endif
